System.Nullable<T> 구조체
이 문서에서는 이 API에 대한 참조 설명서에 대한 추가 설명서를 제공합니다.
클래스는 Nullable 할당 null
할 수 있는 값 형식을 나타냅니다.
형식은 값을 할당하거나 할당 null
할 수 있는 경우 null 허용이라고 합니다. 즉, 형식에 값이 전혀 없습니다. 기본적으로 모든 참조 형식(예: Stringnullable)은 null 허용이지만, 같은 Int32모든 값 형식은 그렇지 않습니다.
C# 및 Visual Basic에서는 값 형식 뒤의 표기법을 사용하여 값 형식을 ?
nullable로 표시합니다. 예를 들어 int?
C# 또는 Integer?
Visual Basic에서는 할당 null
할 수 있는 정수 값 형식을 선언합니다.
구조체는 Nullable<T> 의도적으로 참조 형식을 null 허용하므로 값 형식만 nullable 형식으로 사용할 수 있습니다.
클래스는 Nullable 구조에 대한 Nullable<T> 보완적인 지원을 제공합니다. 클래스는 Nullable nullable 형식의 기본 형식을 가져오고 기본 값 형식이 제네릭 비교 및 같음 연산을 지원하지 않는 nullable 형식 쌍에 대한 비교 및 같음 연산을 지원합니다.
기본 속성
구조체의 Nullable<T> 두 가지 기본 멤버는 및 Value 속성입니다HasValue. 개체의 HasValue 속성 Nullable<T> 이 true
면 해당 속성으로 개체 값에 Value 액세스할 수 있습니다. 속성이 HasValue false
면 개체의 값이 정의되지 않고 속성에 Value 액세스하려고 하면 throw InvalidOperationException됩니다.
boxing 및 unboxing
nullable 형식이 boxed되면 공용 언어 런타임은 개체 자체가 아닌 개체의 Nullable<T> 기본 값을 자동으로 상자로 만듭니 Nullable<T> 다. 즉, 속성이 HasValue 면 true
속성의 내용이 Value boxed됩니다. nullable 형식의 기본 값이 unboxed이면 공용 언어 런타임은 기본 값으로 초기화된 새 Nullable<T> 구조를 만듭니다.
HasValue
nullable 형식의 속성이false
면 boxing 작업의 결과는 다음과 입니다null
. 따라서 boxed nullable 형식이 개체 인수를 예상하는 메서드에 전달되는 경우 해당 메서드는 인수 null
가 있는 경우를 처리하도록 준비해야 합니다. null
nullable 형식으로 unboxed되면 공용 언어 런타임은 새 Nullable<T> 구조를 만들고 해당 HasValue
속성을 false
로 초기화합니다.
Windows 런타임 구성 요소
형식을 Nullable<T> WinMD 라이브러리에서 내보낸 구조체의 멤버로 포함할 수 있습니다.
.NET